cookecutter 使用以及整洁架构设计

在设计架构过程是使用 cookiecutter 能够方便快速的搭建统一的框架。该笔记是依据 《整洁架构》搭建日志模版的过程和思路整理。

1. Python 环境依赖拆分

Python 在开发环境、测试环境以及生产环境下,可能对相关 package 依赖方面存在差异。因此将三个环境依赖拆分开是有实际意义的,创建一个 requirements 目录之后分别生成 test.txtprod.txt 以及 dev.txt 分别存放三个环境依赖。

在实践过程中可以使用 virtualenv 创建需要的环境,使用 pip install -r requirements/<env_name>.txt 可以分别创建三个不同的依赖环境

2. 测试方案和 Python 标准检验

2.1 Pytest 工具配置

使用 pytest 进行测试时,可以在 package 的根目录下存放一个 pytest.ini 文件,添加相关配置之后可以直接在根目录下使用 py.test -sv 进行快速测试。配置信息如下:

pytest.ini >unfolded
1
2
3
4
[pytest]
minversion = 2.0
norecursedirs = .git .tox venv* requirements*
python_files = test*.py

2.2 覆盖测试命令

Coveragepytest-cov 提供了覆盖测试的方式,可以结合 pytest 命令一起进行覆盖测试。使用命令 py.test --cov-report term-missing --cov=<package_name> 可以进行覆盖测试,将返回详细的测试报告

2.3 PEP 标准检查

Python 编程过程中主要的代码规范标准是 PEP8,flake8 工具提供了该该规范检查。该规范检查可以在 setup.cfg 中添加配置信息之后,使用 flake8 命令检查。相关的配置信息如下:

setup.cfg >unfolded
1
2
3
4
[flake8]
ignore = D203
exclude = .git, venv*, docs
max-complexity = 10

参考

  1. flake8 文档
作者

ZenRay

发布于

2020-12-10

更新于

2021-01-07

许可协议

CC BY-NC-SA 4.0